2023/12/232885字符
正则
转义字符
- \n :换行
- \t :相当于Tab键
- \r :回车
- \f :“♀”字符
- ' :单引号
- " :双引号
- \ :“\”
- \b :退格
- \f :换页
- & :和号
document.body.innerHTML = "\
<san></span>\
<em></em>\
"; // 防止报错
RegExp 正则表达式
var reg = /abce/;
var str = "abcde";
console.log(reg.test(str)); //--> false
var reg = new RegExp("abc", "i"); // 另一种创建方法
var str = "abcd";
console.log(reg.test(str)); //--> true
忽视大小写
var reg = /abc/i;
var str = "ABc";
console.log(reg.test(str)); //--> true
全局匹配
var reg = /a/g;
var str = "abcab";
console.log(str.match(reg)); //--> ['a', 'a']
多行匹配
var reg = /^a/m; // ^ 开头字符
var str = "abc\nab";
console.log(str.match(reg)); //--> ['a', 'a']
表达式
var reg = /[0-9][a-z]/; // 每个 [] 代表一位
var str = "a1b";
console.log(str.match(reg)); //--> 1b
var reg = /[^a][^b]/; // 写在 [] 里的 ^ 表示:除了
var str = "asvadshu";
console.log(str.match(reg)); //--> sv
var reg = /(abc|bcd)/; // | 或
var str = "bcd";
console.log(str.match(reg)); //--> bcd
元字符
- \w === [0-9A-z_] 键盘字符
- \W === [^\w]
- \d === [0-9] 数字
- \D === [^\d]
- \s === [\t\n\f\r\v ] 空白字符
- \S === [^\s]
- \b 单词边界
- \B 非单词边界
- \u0000 unicode 编码
- . === [^\n\r] 查找单个字符,除了换行和行结束符
量词(贪婪匹配原则)
- n+ 1-Infinity
- n+? (非贪婪匹配)
- n* 0-Infinity
- n? 0-1
- n{4,3}
- n{1,}
- ^n$ 以 n 开头,以 n 结尾
检验一个字符串首尾是否含有数字
var reg = /^\d|\d$/;
var str = "123abc";
reg.test(str); // 返回 boolen 值
reg.exec(str);
reg.lastIndex(2); // 全局匹配情况下,游标放到第2位
var reg = /(\w)\1/g; // 反向引用 \w 一模一样的字符
var reg = /(\w)\1(w)\2/g;
str = "aabb";
var reg = /\w/g;
var str = "aa";
console.log(str.replace(reg, "b")); //--> bb 如果不加全局匹配,只会替换一个字符
var reg = /(\w)\1(\w)\2/g;
var str = "aabb";
console.log(str.replace(reg, "$2$2$1$1"));
var reg = /-(\w)/g;
var str = "the-frist-name";
console.log(str.replace(reg, function($, $1){
return $1.toUpperCase(); //--> theFristName
}));
?=b ?!b
var str = "abaaaaa";
var reg = /a(?=b)/g; // 正向预查
console.log(str.match(reg)); //--> a
var str = "aaaaaaabbbbbbbbbccccccc";
var reg = /(\w)\1*/g;
console.log(str.replace(reg, "$1")); //--> abc
银行计数
var str = "10000000000";
var reg = /(?=(\B)(\d{3})+$)/g;
console.log(str.replace(reg, ",")); //--> 10,000,000,000